#include "seqsq.h"

void inits(seqstack *s);
void copyqs(seqstack *s, sequeue *q);
void input(seqstack *s);
void prints(seqstack *s);
int main()
{
    seqstack s;
    sequeue q;
    inits(&s);
    initq(&q);
    input(&s);
    copyqs(&s, &q);
    prints(&s);
    printq(&q);
}

void copyqs(seqstack *s, sequeue *q){
//	此处并不是一个严谨的队列，因为它front逆时针临时存储了奇数 
//	判断奇偶，偶数rear++，奇数front-- 
    (s->top>-1&&s->elem[s->top]%2) ? (q->elem[q->front--+MAXSIZE]=s->elem[s->top--]):(q->elem[++q->rear]=s->elem[s->top--]);
//  如果栈内仍有数据，继续执行copyqs，即进入函数执行奇偶判断 
    if(s->top>-1) copyqs(s, q);
//  将队列中的奇数导出到栈内 ，front-- 
    if(q->front<-1) s->elem[s->top+++1] = q->elem[q->front+++1+MAXSIZE];
}

